package com.mashiro.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mashiro.common.annotation.Excel;
import com.mashiro.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 合同对象 moe_contractual
 *
 * @author mashiro
 * @date 2023-04-14
 */
public class MoeContractual extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 合同ID
     */
    private Long id;

    /**
     * 合同名称
     */
    @Excel(name = "合同名称")
    private String name;

    /**
     * 所属项目ID
     */
    @Excel(name = "所属项目ID")
    private Long projectId;

    /**
     * 所属项目
     */
    @Excel(name = "所属项目")
    private String projectName;

    /**
     * 所属团队ID
     */
    @Excel(name = "所属团队ID")
    private Long teamId;

    /**
     * 所属团队
     */
    @Excel(name = "所属团队")
    private String teamName;

    /**
     * 校对人员ID
     */
    @Excel(name = "校对人员ID")
    private Long approvalId;
    /**
     * 校对人员
     */
    @Excel(name = "校对人员")
    private String approvalName;
    /**
     * 项目负责人
     */
    @Excel(name = "项目负责人")
    private String leader;

    /**
     * 合同类型
     */
    @Excel(name = "合同类型")
    private String type;

    /**
     * 签约日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签约日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signatureDate;

    /**
     * 生效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveDate;

    /**
     * 终止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "终止日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 项目申报附件
     */
    private String declarationFile;

    /**
     * 项目合同附件
     */
    private String contractualFile;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private String status;

    /**
     * 删除标志（0存在 2删除）
     */
    private String delFlag;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public Long getTeamId() {
        return teamId;
    }

    public void setTeamId(Long teamId) {
        this.teamId = teamId;
    }

    public Long getApprovalId() {
        return approvalId;
    }

    public void setApprovalId(Long approvalId) {
        this.approvalId = approvalId;
    }

    public String getLeader() {
        return leader;
    }

    public void setLeader(String leader) {
        this.leader = leader;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Date getSignatureDate() {
        return signatureDate;
    }

    public void setSignatureDate(Date signatureDate) {
        this.signatureDate = signatureDate;
    }

    public Date getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(Date effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getDeclarationFile() {
        return declarationFile;
    }

    public void setDeclarationFile(String declarationFile) {
        this.declarationFile = declarationFile;
    }

    public String getContractualFile() {
        return contractualFile;
    }

    public void setContractualFile(String contractualFile) {
        this.contractualFile = contractualFile;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public String getApprovalName() {
        return approvalName;
    }

    public void setApprovalName(String approvalName) {
        this.approvalName = approvalName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("projectId", getProjectId())
                .append("projectName", getProjectName())
                .append("teamId", getTeamId())
                .append("teamName", getTeamName())
                .append("approvalId", getApprovalId())
                .append("approvalName", getApprovalName())
                .append("leader", getLeader())
                .append("type", getType())
                .append("signatureDate", getSignatureDate())
                .append("effectiveDate", getEffectiveDate())
                .append("endDate", getEndDate())
                .append("declarationFile", getDeclarationFile())
                .append("contractualFile", getContractualFile())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
